#define MYNAME "nmea"
-static const double kts2mps =0.51444444444444444; /* knots to m/s */
-static const double kmh2mps =0.27777777777777778; /* km/h to m/s */
-
static char *opt_gprmc;
static char *opt_gpgga;
static char *opt_gpvtg;
/* capture useful data update and exit */
if (curr_waypt) {
if (! WAYPT_HAS(curr_waypt, speed))
- WAYPT_SET(curr_waypt, speed, speed*kts2mps);
+ WAYPT_SET(curr_waypt, speed, KNOTS_TO_MPS(speed));
if (! WAYPT_HAS(curr_waypt, course))
WAYPT_SET(curr_waypt, course, course);
/* The change of date wasn't recorded when
waypt = waypt_new();
- WAYPT_SET(waypt, speed, speed*kts2mps);
+ WAYPT_SET(waypt, speed, KNOTS_TO_MPS(speed));
WAYPT_SET(waypt, course, course);
WAYPT_SET(curr_waypt, course, course);
if (speed_k>0)
- WAYPT_SET(curr_waypt, speed, speed_k*kmh2mps)
+ WAYPT_SET(curr_waypt, speed, KPH_TO_MPS(speed_k))
else
- WAYPT_SET(curr_waypt, speed, speed_n*kts2mps);
+ WAYPT_SET(curr_waypt, speed, KNOTS_TO_MPS(speed_n));
}
fix=='0' ? 'V' : 'A',
fabs(lat), lat < 0 ? 'S' : 'N',
fabs(lon), lon < 0 ? 'W' : 'E',
- WAYPT_HAS(wpt, speed) ? (wpt->speed / kts2mps):(0),
+ WAYPT_HAS(wpt, speed) ? MPS_TO_KNOTS(wpt->speed):(0),
WAYPT_HAS(wpt, course) ? (wpt->course):(0),
(int) ymd);
cksum = nmea_cksum(obuf);
if ((opt_gpvtg) && (WAYPT_HAS(wpt, course) || WAYPT_HAS(wpt, speed))) {
snprintf(obuf,sizeof(obuf),"GPVTG,%.3f,T,0,M,%.3f,N,%.3f,K",
WAYPT_HAS(wpt, course) ? (wpt->course):(0),
- WAYPT_HAS(wpt, speed) ? (wpt->speed / kts2mps):(0),
- WAYPT_HAS(wpt, speed) ? (wpt->speed / kmh2mps):(0) );
+ WAYPT_HAS(wpt, speed) ? MPS_TO_KNOTS(wpt->speed):(0),
+ WAYPT_HAS(wpt, speed) ? MPS_TO_KPH(wpt->speed):(0) );
cksum = nmea_cksum(obuf);
gbfprintf(file_out, "$%s*%02X\n", obuf, cksum);
-$FRSPD,0.04*65\r
+$FRSPD,0.02*63\r
$FRWPT,3003.73100,N,09136.62100,W,1.0,250502,170621*63\r
-$FRSPD,1.24*66\r
+$FRSPD,0.64*63\r
$FRWPT,3003.76700,N,09136.63400,W,0.0,250502,170955*69\r
-$FRSPD,6.70*60\r
+$FRSPD,3.45*63\r
$FRWPT,3003.76200,N,09136.49600,W,0.0,250502,171200*6C\r
-$FRSPD,7.43*61\r
+$FRSPD,3.82*68\r
$FRWPT,3003.74000,N,09136.44300,W,0.0,250502,171248*68\r
-$FRSPD,7.39*6C\r
+$FRSPD,3.80*6A\r
$FRWPT,3003.69200,N,09136.31700,W,0.0,250502,171441*6F\r
-$FRSPD,14.61*53\r
+$FRSPD,7.52*61\r
$FRWPT,3003.58700,N,09135.96400,W,0.0,250502,171716*64\r
-$FRSPD,43.13*54\r
+$FRSPD,22.19*59\r
$FRWPT,3003.46800,N,09135.80100,W,0.0,250502,171746*63\r
-$FRSPD,35.48*5B\r
+$FRSPD,18.25*5F\r
$FRWPT,3003.32300,N,09135.69400,W,0.0,250502,171820*66\r
-$FRSPD,25.45*57\r
+$FRSPD,13.09*5A\r
$FRWPT,3003.23300,N,09135.55700,W,0.0,250502,171901*68\r
-$FRSPD,19.37*5D\r
+$FRSPD,9.96*67\r
$FRWPT,3002.98400,N,09135.38500,W,0.0,250502,172046*6E\r
-$FRSPD,12.72*57\r
+$FRSPD,6.54*66\r
$FRWPT,3002.94100,N,09135.39300,W,0.0,250502,172110*62\r
-$FRSPD,27.18*5D\r
+$FRSPD,13.98*52\r
$FRWPT,3002.92800,N,09135.57600,W,0.0,250502,172151*65\r
-$FRSPD,38.06*5C\r
+$FRSPD,19.58*54\r
$FRWPT,3002.77400,N,09135.78700,W,0.0,250502,172235*6F\r
-$FRSPD,26.63*50\r
+$FRSPD,13.70*54\r
$FRWPT,3002.73100,N,09135.92300,W,0.0,250502,172308*61\r
-$FRSPD,0.38*6A\r
+$FRSPD,0.20*63\r
$FRWPT,3002.83800,N,09136.01600,W,0.0,250502,180423*68\r
-$FRSPD,2.60*65\r
+$FRSPD,1.34*67\r
$FRWPT,3002.82000,N,09135.97800,W,2.0,250502,180604*66\r
-$FRSPD,3.97*6C\r
+$FRSPD,2.04*67\r
$FRWPT,3002.78600,N,09135.96800,W,0.0,250502,180706*65\r
-$FRSPD,2.95*6F\r
+$FRSPD,1.52*67\r
$FRWPT,3002.77200,N,09135.93700,W,1.0,250502,180818*65\r
-$FRSPD,3.68*6C\r
+$FRSPD,1.89*61\r
$FRWPT,3002.78200,N,09135.86400,W,0.0,250502,181020*6E\r
-$FRSPD,4.21*66\r
+$FRSPD,2.17*65\r
$FRWPT,3002.78100,N,09135.83000,W,0.0,250502,181109*66\r
-$FRSPD,5.13*66\r
+$FRSPD,2.64*61\r
$FRWPT,3002.80700,N,09135.78000,W,0.0,250502,181218*60\r
-$FRSPD,4.02*67\r
+$FRSPD,2.07*64\r
$FRWPT,3002.84700,N,09135.71200,W,0.0,250502,181422*60\r
-$FRSPD,5.14*61\r
+$FRSPD,2.64*61\r
$FRWPT,3002.86800,N,09135.68600,W,2.0,250502,181504*66\r
-$FRSPD,4.47*66\r
+$FRSPD,2.30*60\r
$FRWPT,3002.89500,N,09135.64500,W,1.0,250502,181614*6A\r
-$FRSPD,4.46*67\r
+$FRSPD,2.29*68\r
$FRWPT,3002.92100,N,09135.62800,W,1.0,250502,181701*6A\r
-$FRSPD,4.26*61\r
+$FRSPD,2.19*6B\r
$FRWPT,3002.96100,N,09135.63100,W,0.0,250502,181807*6E\r
-$FRSPD,3.94*6F\r
+$FRSPD,2.03*60\r
$FRWPT,3003.01900,N,09135.63900,W,2.0,250502,181951*61\r
-$FRSPD,4.21*66\r
+$FRSPD,2.17*65\r
$FRWPT,3003.04700,N,09135.64700,W,0.0,250502,182039*65\r
-$FRSPD,4.67*64\r
+$FRSPD,2.40*67\r
$FRWPT,3003.07400,N,09135.66200,W,0.0,250502,182124*6F\r
-$FRSPD,4.50*60\r
+$FRSPD,2.31*61\r
$FRWPT,3003.10800,N,09135.66200,W,0.0,250502,182217*66\r
-$FRSPD,3.39*68\r
+$FRSPD,1.74*63\r
$FRWPT,3003.13300,N,09135.68000,W,0.0,250502,182318*6C\r
-$FRSPD,4.26*61\r
+$FRSPD,2.19*6B\r
$FRWPT,3003.18100,N,09135.68100,W,0.0,250502,182437*6E\r
-$FRSPD,3.71*64\r
+$FRSPD,1.91*68\r
$FRWPT,3003.29200,N,09135.71200,W,6.0,250502,182813*68\r
-$FRSPD,2.40*67\r
+$FRSPD,1.23*61\r
$FRWPT,3003.22400,N,09135.69600,W,2.0,250502,183136*63\r
-$FRSPD,2.97*6D\r
+$FRSPD,1.53*66\r
$FRWPT,3003.19100,N,09135.68700,W,0.0,250502,183256*69\r
-$FRSPD,3.52*65\r
+$FRSPD,1.81*69\r
$FRWPT,3003.15800,N,09135.69000,W,0.0,250502,183402*6D\r
-$FRSPD,1.91*68\r
+$FRSPD,0.98*60\r
$FRWPT,3003.14700,N,09135.72600,W,0.0,250502,183603*6C\r
-$FRSPD,4.33*65\r
+$FRSPD,2.23*62\r
$FRWPT,3003.14900,N,09135.75800,W,0.0,250502,183648*64\r
-$FRSPD,4.77*65\r
+$FRSPD,2.46*61\r
$FRWPT,3003.15900,N,09135.80700,W,1.0,250502,183752*6B\r
-$FRSPD,5.10*65\r
+$FRSPD,2.62*67\r
$FRWPT,3003.18800,N,09135.87100,W,0.0,250502,183918*67\r
-$FRSPD,3.64*60\r
+$FRSPD,1.87*6F\r
$FRWPT,3003.21700,N,09135.87800,W,0.0,250502,184015*68\r
-$FRSPD,2.35*65\r
+$FRSPD,1.21*63\r
$FRWPT,3003.23800,N,09135.86600,W,6.0,250502,184125*6E\r
-$FRSPD,2.60*65\r
+$FRSPD,1.34*67\r
$FRWPT,3003.21700,N,09135.88500,W,0.0,250502,184237*68\r
-$FRSPD,2.21*60\r
+$FRSPD,1.14*65\r
$FRWPT,3003.19200,N,09135.87500,W,0.0,250502,184401*6A\r
-$FRSPD,1.94*6D\r
+$FRSPD,1.00*60\r
$FRWPT,3003.16900,N,09135.85100,W,0.0,250502,184553*6E\r
-$FRSPD,3.89*63\r
+$FRSPD,2.00*63\r
$FRWPT,3003.15400,N,09135.81600,W,0.0,250502,184654*67\r
-$FRSPD,4.31*67\r
+$FRSPD,2.22*63\r
$FRWPT,3003.14000,N,09135.78600,W,0.0,250502,184742*62\r
-$FRSPD,4.67*64\r
+$FRSPD,2.40*67\r
$FRWPT,3003.13500,N,09135.74100,W,0.0,250502,184841*67\r
-$FRSPD,3.42*64\r
+$FRSPD,1.76*61\r
$FRWPT,3003.13300,N,09135.70100,W,0.0,250502,184952*66\r
-$FRSPD,3.18*6B\r
+$FRSPD,1.64*62\r
$FRWPT,3003.11300,N,09135.68200,W,0.0,250502,185049*6C\r
-$FRSPD,4.32*64\r
+$FRSPD,2.22*63\r
$FRWPT,3003.06300,N,09135.66400,W,0.0,250502,185214*68\r
-$FRSPD,5.05*61\r
+$FRSPD,2.60*65\r
$FRWPT,3003.03400,N,09135.65400,W,0.0,250502,185256*6F\r
-$FRSPD,4.01*64\r
+$FRSPD,2.06*65\r
$FRWPT,3003.01100,N,09135.64600,W,0.0,250502,185338*62\r
-$FRSPD,5.12*67\r
+$FRSPD,2.64*61\r
$FRWPT,3002.94600,N,09135.62300,W,0.0,250502,185511*66\r
-$FRSPD,4.14*60\r
+$FRSPD,2.13*61\r
$FRWPT,3002.90700,N,09135.65500,W,0.0,250502,185632*60\r
-$FRSPD,4.59*69\r
+$FRSPD,2.36*66\r
$FRWPT,3002.88500,N,09135.68500,W,0.0,250502,185724*60\r
-$FRSPD,4.66*65\r
+$FRSPD,2.39*69\r
$FRWPT,3002.85000,N,09135.72700,W,7.0,250502,185840*6B\r
-$FRSPD,5.64*66\r
+$FRSPD,2.90*6A\r
$FRWPT,3002.82400,N,09135.76000,W,0.0,250502,185928*63\r
-$FRSPD,5.27*61\r
+$FRSPD,2.71*65\r
$FRWPT,3002.79800,N,09135.79600,W,0.0,250502,190022*65\r
-$FRSPD,5.00*64\r
+$FRSPD,2.57*61\r
$FRWPT,3002.78400,N,09135.85900,W,0.0,250502,190141*60\r
-$FRSPD,4.56*66\r
+$FRSPD,2.35*65\r
$FRWPT,3002.77400,N,09135.90800,W,0.0,250502,190248*60\r
-$FRSPD,3.37*66\r
+$FRSPD,1.73*64\r
$FRWPT,3002.77900,N,09135.93800,W,0.0,250502,190343*64\r
-$FRSPD,3.45*63\r
+$FRSPD,1.77*60\r
$FRWPT,3002.80700,N,09135.95700,W,0.0,250502,190449*66\r
-$FRSPD,2.98*62\r
+$FRSPD,1.53*66\r
$FRWPT,3002.82800,N,09135.98000,W,0.0,250502,190557*6F\r